<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 混入模式
        // mixin ：混入 


     


        class Skills{
            walk(){
                console.log("会走");
            }
            release(){
                console.log("释放技能");
            }
        }

        class Luban{
            constructor(){
                this.name = "鲁班"
            }
        }

        class Yase{
            constructor(){
                this.name = "亚瑟"
            }
        }

        // let luban = new Luban();
        // luban.release();
        // 混入模式 把 技能  混入到 英雄里去
        function mixin(rclass,gclass){
            // rclass ：接收混入方法的类
            // gclass： 提供混入方法的类
            for(let i=2;i<=arguments.length;i++){
                // console.log(arguments[i]);
                rclass.prototype[arguments[i]] = gclass.prototype[arguments[i]];
            }
        }
        mixin(Luban,Skills,"walk","release");
        // console.dir(Luban);
        let luban = new Luban();
        luban.release();
        luban.walk();


        // axios
        // axios();
        // axios.get();

        function axios(){
            console.log("axios");
        }
        axios();
        axios.get = function(){
            console.log("get");
        }
        axios.get();

    /* 
        单例模式
        工厂模式
        混入模式
        观察者模式 ：发布订阅 
        代理模式 ：proxy
        new Proxy()
    */

    

    </script>
</body>
</html>